/*
 * ar_model.h
 *
 *  Created on: 2009-7-27
 *      Author: wyb
 */

#ifndef AR_MODEL_H_
#define AR_MODEL_H_

#include "util.h"
#include <math.h>
#include <stdlib.h>
#include <stdio.h>

//默认的阶数
#define DEFAULT_P 2

struct ar_model {
	int P; //阶数
	double unbiased_variance; //正态分布的均方差
	double *seq; //参数序列
};

void output_ar(struct ar_model *value);

struct double_array *compute_ar_model(int num, struct ar_model *value,
		struct double_array *history); //AR模型计算出来的估计值

struct ar_model *ar_burg(int P, int N, double *value); //用burg算法计算AR模型的参数

struct ar_model *ar_AIC(int N, double *value); //用AIC准则确定阶数

#endif /* AR_MODEL_H_ */
